package com.ruoyi.system.vo;

import com.ruoyi.system.entity.MsgPushTaskDO;
import com.ruoyi.system.entity.MsgPushTaskItemDO;
import lombok.Data;

import java.util.List;

/**
 * 消息推送任务详情VO
 * 包含任务基本信息和接收者明细信息
 * 
 * @author ruoyi
 * @since 2024-01-01
 */
@Data
public class MsgPushTaskWithDetailsVO {

    /**
     * 任务基本信息
     */
    private MsgPushTaskDO task;

    /**
     * 接收者明细列表
     */
    private List<MsgPushTaskItemDO> receivers;

    /**
     * 接收者统计信息
     */
    private ReceiverStatistics statistics;

    /**
     * 接收者统计信息内部类
     */
    @Data
    public static class ReceiverStatistics {
        /**
         * 总接收者数量
         */
        private Integer totalCount;

        /**
         * 已推送数量
         */
        private Integer sentCount;

        /**
         * 已读数量
         */
        private Integer readCount;

        /**
         * 已签名数量
         */
        private Integer signedCount;

        /**
         * 推送失败数量
         */
        private Integer failedCount;

        /**
         * 未读数量
         */
        private Integer unreadCount;

        /**
         * 未签名数量
         */
        private Integer unsignedCount;
    }
}
